
// 所有的数据都放在这个key中
const STORAGE_KEY = 'APP';
//数据类似这样
// {
//     "APP":{
//         "Product":
//         {
//             "id":"5"
//         },
//         "User":
//         {
//             "id":"4",
//             "username":"xxx"
//         }
//     }
// };


export default {

    //设置值(在某一个模块中设置值)
    setItem(key,value,model_name){
        if(model_name){
            //获取模块对象
            let val = this.getItem(model_name);
            val[key] = value;
            //把该模块的数据覆盖
            this.setItem(model_name,val)
        }
        else{
            //获取到Storage中的数据
            let val = this.getStorage();
            //设置值
            val[key] = value;
            //把整个val数据覆盖一下
            window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val))
        }
    },

    //获取值(在某一个模块中获取值)如app下面的user。user下面的username
    getItem(key,model_name){
        //如果传入了model_name,则获取到该模块中的数据
        if(model_name){
            let val = this.getItem(model_name);
            //如果该模块有值则返回
            if (val){
                return val[key]
            }

        }
        return this.getStorage()[key]
    },

    //获取window.sessionStorage，如果没有则设置{}
    getStorage(){
        return JSON.parse(
            window.sessionStorage.getItem(STORAGE_KEY) || {}
        );
    },

    //删除值,通过键删除值
    clear(key,model_name){
        let val = this.getStorage();
        if(model_name){
            delete val[model_name][key];
        }
        else{
            delete val[key]
        }
        //重新设置
        window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val))
    },
}










